package com.cyn.aframework.scriptenginemanager;

import javax.script.ScriptException;

public class Test {

    public static void main(String[] args) throws ScriptException {

//        ScriptEngineManager manager = new ScriptEngineManager();
//        ScriptEngine engine = manager.getEngineByName("javascript");
//
//        Double hour = (Double) engine.eval("var date = 123.123;date;");
//
//        System.out.println(hour);

//        ScriptEngineManager manager = new ScriptEngineManager();
//        ScriptEngine js = manager.getEngineByName("JavaScript");
//        //构建原始数据
//        JSONObject jsonObject1 = JSONObject.parseObject("{'status':'success', 'remark':'下单成功'}");
//        JSONObject jsonObject2 = JSONObject.parseObject("{'status':'fail', 'remark':'下单失败，余额不足'}");
//        JSONObject jsonObject3 = JSONObject.parseObject("{'status':'success', 'remark':'下单成功'}");
//        List<JSONObject> list = new ArrayList<>();
//        list.add(jsonObject1);
//        list.add(jsonObject2);
//        list.add(jsonObject3);
//        //构建规则参数
//        Map<String, String> filter2 = new TreeMap<>();
//        filter2.put("val1", "status");
//        filter2.put("val2", "remark");
//
//        String rule = "'status' === 'fail' && 'remark'.indexOf('失败') > -1";
//        List<JSONObject> result = new ArrayList<>();
//        for (JSONObject map : list) {
//            //构建参数实际值
//            List<String> listValue = new ArrayList<>();
//            filter2.forEach((key, val) -> {
//                String s = map.get(val).toString();
//                listValue.add(s);
//            });
//            String[] array = new String[listValue.size()];
//            array = listValue.toArray(array);
//
//            //需要执行的实际规则
//            String evalRule = StringUtils.replaceEach(rule, new String[]{"status","remark"}, array);
//            boolean a = false;
//            try {
//                //规则执行
//                a = (boolean) js.eval(evalRule);
//                if (a){
//                    result.add(map);
//                }
//            } catch (ScriptException e) {
//                e.printStackTrace();
//            }
//        }
//        System.out.println(result);

        String[] t = {"1","2","3"};
        System.out.println();

    }
}
